The invention generally relates to graphics processing and, more particularly, the invention relates to post processing of graphical display streams processed by a graphics processor.
To reduce the computational burden of their host microprocessors, many computer systems have graphics processors for processing graphics request code. Many such graphics processors typically include a back end unit that formats the processed graphics request code into a specified output format for display by a display device. For example, processed graphics request code may be formatted by a back end unit for display by a specific display device, such as a cathode ray tube monitor. As known in the art, prior to being displayed on a monitor, processed graphics request code commonly must be gamma corrected to compensate for the nonlinear characteristics of the drive electronics of the monitor. Moreover, cursor data often is not added during processing and thus, if desired, must be added by the back end unit. Accordingly, back end units commonly include a random access memory/digital to analog converter (xe2x80x9cRAMDACxe2x80x9d) that both applies gamma correction, and adds cursor data to processed graphics request code.
It often is unnecessary, however, to apply gamma correction to a processed graphics request stream that already has been gamma corrected, or to a processed graphics request stream that is to be stored in memory and thus, not immediately displayed. Moreover, it often is unnecessary to add cursor data to the processed graphics request code when it is to be stored in a memory device, or when no cursor is required. Accordingly, applying gamma correction and adding cursor data to processed graphics request code often is redundant, and undesirably can add extraneous data to the processed graphics request code.
In accordance with one aspect of the invention, a back end unit for use with a graphics processor includes an input for receiving graphics data streams from the graphics processor, an output for transmitting graphics data streams, and a plurality of paths, coupled with the input and output, that direct graphics data streams between the input and the output. In accord with preferred embodiments, the plurality of paths direct data between the various modules that are a part of the back end unit. To that end, among other things, the back end unit also includes a gamma correction module that applies gamma correction operations to graphics data streams, a cursor module that adds cursor data to graphics data streams, and a digital to analog converter that converts the graphics data streams from a digital format to an analog format. The plurality of paths thus permit graphics data streams to pass through no more than two of the gamma correction module, the cursor module, and the digital to analog converter.
In preferred embodiments, the plurality of paths includes a pass-through path that permits graphics data streams to pass directly from the input to the output. The plurality of paths also may include a gamma module bypass path that permits graphics data streams to bypass the gamma correction module. Although it bypasses the gamma correction module, the gamma module bypass path permits graphics data streams to pass through at least one of the cursor module and the digital to analog converter. In addition to or instead of those paths noted above, the plurality of paths also may include a double bypass path that permits graphics data streams to bypass both the gamma correction module and the cursor module. The double bypass module path therefore permits graphics data streams to pass through the digital to analog converter. Furthermore, the plurality of paths may include a cursor module bypass path that permits graphics data streams to bypass the cursor module. The cursor module bypass path thus permits graphics data streams to pass through at least one of the gamma correction module and the digital to analog converter.
In accordance with another aspect of the invention, a back end unit for use with a graphics processor includes an input for receiving graphics data streams, a plurality of functional modules that process graphics data streams, an output, and a switching system providing a plurality of paths for alternatively electrically connecting the various functional modules in a plurality of configurations. The functional modules include a gamma correction module for applying gamma correction to the graphics data streams, a cursor module for adding cursor data to the graphics data streams, and a digital to analog converter.
The switching system preferably provides an electrical path through no more than two of the gamma correction module, the cursor module, and the digital to analog converter. The plurality of paths may include a pass-through path that permits graphics data streams to pass directly from the input to the output. The output may include an analog output that forwards analog signals from the digital to analog converter, and a digital output that forwards digital signals. In such case, the switching system may alternatively switch between the digital output and the analog output. The plurality of paths also may include a gamma module bypass path that permits graphics data streams to bypass the gamma correction module and yet, pass through at least one of the cursor module and the digital to analog converter. The plurality of paths also may include a double module bypass path that permits graphics data streams to bypass both the gamma correction module and cursor module, while still passing through the digital to analog converter. The plurality of paths may further include a cursor module bypass path that permits graphics data streams to bypass the cursor module, while still passing through at least one of the gamma correction module and the digital to analog converter.
In accordance with still another aspect of the invention, a back end unit for use with a graphics processor includes an input for receiving graphics data streams from the graphics processor, an output for transmitting graphics data streams, and a plurality of functional modules between the input and the output. The plurality of functional modules each includes logic for processing graphics data streams received by the input. The back end unit also includes a switching system capable of alternatively coupling the input, output, and the plurality of functional modules. Among other things, the switching system is capable of bypassing one or more of the functional modules.